import {
    reqChatList, reqUpdateChat, reqUpdateChatStatus, reqGroupList,
    reqUpdateGroup, reqUpdateGroupStatus, reqChatDetailList,
    reqUpdateChatDetail, reqUpdateChatDetailStatus, reqContactsList,
    reqUpdateContacts, reqUpdateContactsStatus
} from "@/api"
// state：仓库存储数据的地方
const state = {
    chatList: [],
    groupList: [],
    chatDetailList: [],
    contactsList: []
}
// mutations：修改state的唯一手段，因此第一个参数必须是state，第二个参数为将要修改的数据
const mutations = {
    SET_CHATLIST(state, res) {
        state.chatList = res
    },
    SET_GROUPLIST(state, res) {
        state.groupList = res
    },
    SET_CHATDETAILLIST(state, res) {
        state.chatDetailList = res
    },
    SET_CONTACTS(state, res) {
        state.contactsList = res
    },
}
// action：书写业务逻辑（method方法）
const actions = {
    // 获取聊天分页列表
    async getChatList({ commit }, data) {
        let res = await reqChatList(data)
        if (res.success) commit("SET_CHATLIST", res.data.list)
        return res
    },
    // 更新聊天
    async updateChat({ commit }, data) {
        return await reqUpdateChat(data)
    },
    // 批量更新聊天状态
    async updateChatStatus({ commit }, data) {
        return await reqUpdateChatStatus(data)
    },
    // 获取分组分页列表
    async getGroupList({ commit }, data) {
        let res = await reqGroupList(data)
        if (res.success) commit("SET_GROUPLIST", res.data.list)
        return res
    },
    // 更新分组
    async updateGroup({ commit }, data) {
        return await reqUpdateGroup(data)
    },
    // 批量更新分组状态
    async updateGroupStatus({ commit }, data) {
        return await reqUpdateGroupStatus(data)
    },
    // 获取聊天记录分页列表
    async getChatDetailList({ commit }, data) {
        let res = await reqChatDetailList(data)
        if (res.success) commit("SET_CHATDETAILLIST", res.data.list)
        return res
    },
    // 更新聊天记录
    async updateChatDetail({ commit }, data) {
        return await reqUpdateChatDetail(data)
    },
    // 批量更新聊天记录状态
    async updateChatDetailStatus({ commit }, data) {
        return await reqUpdateChatDetailStatus(data)
    },
    // 获取聊天记录分页列表
    async getContactsList({ commit }, data) {
        let res = await reqContactsList(data)
        if (res.success) commit("SET_CONTACTS", res.data.list)
        return res
    },
    // 更新聊天记录
    async updateContacts({ commit }, data) {
        return await reqUpdateContacts(data)
    },
    // 批量更新聊天记录状态
    async updateContactsStatus({ commit }, data) {
        return await reqUpdateContactsStatus(data)
    },
}
// getters：计算属性
const getters = {

}

export default {
    state,
    mutations,
    actions,
    getters
}